# -*- coding: utf-8 -*-
# בש״ד
#
# Teniente Django Template Slots - Part of the Cuba Libre Project
# Copyright (C) 2009, Joshua "jag" Ginsberg <jag@flowtheory.net>
# 
# Para mi amor, que inspira a mi cada respiración y que extraña a Cuba
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

from taino.api import Interface

class ITemplateSlot(Interface):
    """An ITemplateSlot is a slot in a template that can be filled by
    ITemplateSlotToken components."""
    
    def wrap_token(token_html):
        """Returns the token html wrapped in more markup."""
    
    def render_slot(token_list):
        """Given a sorted list of rendered tokens, returns the complete slot
        html joining the tokens together appropriately and wrapping the slot
        in html appropriately."""

class ITemplateSlotToken(Interface):
    """An ITemplateSlotToken is a component that fills a particular slot."""
    
    def get_slot_id():
        """Returns the component ID for the slot this token fills."""
    
    def render_token(context):
        """Given a template context, either returns None to decline to fill
        the slot or returns valid rendered HTML markup."""


        
    
        